package com.ztesoft.web.baseconfig.service;

import java.util.List;

import com.ztesoft.framework.exception.BaseAppException;
import com.ztesoft.web.baseconfig.db.po.DmPlanPO;
import com.ztesoft.web.baseconfig.vo.DmFilePlanVO;
import com.ztesoft.web.common.vo.DmHostConnInfoVO;

/**
 * <Description> <br>
 * 
 * @author Lin.jie<br>
 * @version 1.0<br>
 * @taskId <br>
 * @CreateDate 2016年6月6日 <br>
 * @since V1.0<br>
 * @see com.ztesoft.web.baseconfig.service <br>
 */

public interface IDmFilePlanService {

	/**
	 * 源/目标主机配置数据源
	 * 
	 * @return
	 * @throws BaseAppException
	 */
	List<DmHostConnInfoVO> getHostInfo() throws BaseAppException;

	/**
	 * 提交计划-文件-所有信息-包括源和目标
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmFilePlanVO addAllInfo(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 获取计划-文件-的信息
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmFilePlanVO getPlanInfo(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 获取计划-文件-策略的信息
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmFilePlanVO getStrategyInfo(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 获取计划-文件-目录表达式验证
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmFilePlanVO xpathVerify(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 获取计划-文件-文件名匹配规则验证
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmFilePlanVO fileNameVerify(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 提交计划-文件
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	DmPlanPO add(DmPlanPO record) throws BaseAppException;

	/**
	 * 判断计划名称是否重复
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	boolean planNameIsRepeated(DmFilePlanVO record) throws BaseAppException;

	/**
	 * 判断策略名称是否重复
	 * 
	 * @param record
	 * @return record
	 * @throws BaseAppException
	 */
	boolean strategyNameIsRepeated(DmFilePlanVO record) throws BaseAppException;
}
